Database SQL – Wildcard Operator
จากบทความเรื่อง SQL LIKE Clause เราจะเห็นว่านอกจาก operator LIKE แล้วยังมีส่วนที่ต้องระบุเงือนไขค่าคงที่ ที่จะนำมาเปรียบเทียบด้วย ซึ่งเกือบทั้งหมดจะต้องมีการใช้งาน SQL Wildcard Operator รวมอยู่ในค่าคงที่นั้น เพื่อเติมเต็มเงือนไขให้สมบูรณ์ภายใต้ SQL Where Clause
สัญลักษณ์ของ Wildcard
1. Percent (%)
แทนค่าเท่ากับตัวอักษรตั้งแต่ 0 ตัว จนถึงกี่ตัวก็ได้ ถ้าเทียบกับใน Linux หรือ Unix operating system ก็จะมีค่าเหมือนกับสัญลักษณ์ (*)
2. Underscore (_)
แทนค่าเท่ากับตัวอักษรเพียง 1 ตัว ถ้าเทียบกับใน Linux หรือ Unix operating system ก็จะมีค่าเหมือนกับสัญลักษณ์ (?)
รูปแบบ (Syntax)
SELECT FROM table_name
WHERE column LIKE 'XXXX%'
or
SELECT FROM table_name
WHERE column LIKE '%XXXX%'
or
SELECT FROM table_name
WHERE column LIKE 'XXXX_'
or
SELECT FROM table_name
WHERE column LIKE '_XXXX'
or
SELECT FROM table_name
WHERE column LIKE '_XXXX_'
ตัวอย่างคำสั่ง Wildcard Operator
Wildcard statement | Detail |
WHERE SALARY LIKE ‘200%’ | หาข้อมูลที่มีค่า SALARY ขึ้นต้นด้วย 200 |
WHERE SALARY LIKE ‘%200%’ | หาข้อมูลที่มีค่า SALARY ประกอบด้วย 200 |
WHERE SALARY LIKE ‘_00%’ | หาข้อมูลที่มีค่า SALARY ตัวอักษรที่ 2-3 เป็น 00 |
WHERE SALARY LIKE ‘2_%_%’ | หาข้อมูลที่มีค่า SALARY มีอย่างน้อย 3 ตัวอักษร และ ที่ขึ้นต้นด้วย 2 |
WHERE SALARY LIKE ‘%2’ | หาข้อมูลที่มีค่า SALARY ที่ลงท้ายด้วย 2 |
WHERE SALARY LIKE ‘_2%3’ | หาข้อมูลที่มีค่า SALARY ตัวอักษรที่ 2 มีค่าเท่ากับ 2 และ ลงท้ายด้วย 3 |
WHERE SALARY LIKE ‘2___3’ | หาข้อมูลที่มีค่า SALARY ขึ้นต้นด้วย 2 และ ลงท้ายด้วย 3 ทั้งหมดมี 5 ตัวอักษร |
Table – CUSTOMERS
+----+----------+-----+-----------+----------+
| ID | NAME | AGE | ADDRESS | SALARY |
+----+----------+-----+-----------+----------+
| 1 | Ramesh | 32 | Ahmedabad | 2000.00 |
| 2 | Khilan | 25 | Delhi | 1500.00 |
| 3 | kaushik | 23 | Kota | 2000.00 |
| 4 | Chaitali | 25 | Mumbai | 6500.00 |
| 5 | Hardik | 27 | Bhopal | 8500.00 |
| 6 | Komal | 22 | MP | 4500.00 |
| 7 | Muffy | 24 | Indore | 10000.00 |
+----+----------+-----+-----------+----------+
ทำการ select ข้อมูลด้วยเงื่อนไข SALARY ที่มีตัวอักษรเริ่มต้นด้วย 200
SQL> SELECT * FROM CUSTOMERS
WHERE SALARY LIKE '200%';
ผลลัพธ์ที่ได้
+----+----------+-----+-----------+----------+
| ID | NAME | AGE | ADDRESS | SALARY |
+----+----------+-----+-----------+----------+
| 1 | Ramesh | 32 | Ahmedabad | 2000.00 |
| 3 | kaushik | 23 | Kota | 2000.00 |
+----+----------+-----+-----------+----------+
Reference:
รวมคำสั่ง SQL Command พื้นฐานเบื้องต้น
Author: Suphakit Annoppornchai
Credit: https://saixiii.com, https://www.tutorialspoint.com